package com.ruoyi.factory.matecount.mapper;

import java.util.Date;
import java.util.List;

import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.factory.matecount.domain.MaterialCount;
import org.apache.ibatis.annotations.Param;

/**
 * 物料销售数据Mapper接口
 * 
 * @author ljj
 * @date 2024-03-06
 */
public interface MaterialCountMapper 
{
    /**
     * 查询物料销售数据
     * 
     * @param id 物料销售数据主键
     * @return 物料销售数据
     */
    public MaterialCount selectMaterialCountById(String id);

    /**
     * 查询物料销售数据列表
     * 
     * @param materialCount 物料销售数据
     * @return 物料销售数据集合
     */
    public List<MaterialCount> selectMaterialCountList(MaterialCount materialCount);
    public List<MaterialCount> selectMaterialCountList2(MaterialCount materialCount);

    /**
     * 新增物料销售数据
     * 
     * @param materialCount 物料销售数据
     * @return 结果
     */
    public int insertMaterialCount(MaterialCount materialCount);

    /**
     * 修改物料销售数据
     * 
     * @param materialCount 物料销售数据
     * @return 结果
     */
    public int updateMaterialCount(MaterialCount materialCount);

    /**
     * 删除物料销售数据
     * 
     * @param id 物料销售数据主键
     * @return 结果
     */
    public int deleteMaterialCountById(String id);

    /**
     * 批量删除物料销售数据
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMaterialCountByIds(String[] ids);

    public int deleteMaterialCountByDate(Date date);

    /**
     * @author: Liujiaji
     * @date: 2024/3/7 14:22
     * @description: TODO erp采购发票物料查询
     * @param: []
     * @return: java.util.List<com.ruoyi.factory.matecount.domain.MaterialCount>
     **/
    @DataSource(value = DataSourceType.SLAVE)
    public List<MaterialCount> lookForMaterial(@Param("date") String date);

    /**
     * @author: Liujiaji
     * @date: 2024/3/7 14:22
     * @description: TODO erp采购发票物料查询替换规格
     * @param: []
     * @return: java.util.List<com.ruoyi.factory.matecount.domain.MaterialCount>
     **/
    @DataSource(value = DataSourceType.SLAVE)
    public List<MaterialCount> lookForMaterialbygg(MaterialCount materialCount);

    @DataSource(value = DataSourceType.SLAVE)
    public int lookForMaterialc(@Param("date") String date);

    @DataSource(value = DataSourceType.SLAVE)
    public List<MaterialCount> lookForMate(String code);

}
